\subsubsection{utilisateur}

\begin{tabular}{|l|c|c|}
	\hline
	Uid & Unsigned Int & Autoincrement - identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
	\hline
	Login & Varchar(50) & Nom Utilisateur (\textbf{index})\tabularnewline
	\hline
	Pass & Varchar(32) & Mot de Passe (haché avec MD5 - \textbf{index})\tabularnewline
	\hline
	Groupe & Unsigned Int(4) & Groupe auquel l'utilisateur appartient\\
	 	&	 & 10 : lecture seule\\ 
		& 	& 100 : ajout possible mais modéré\\
		&	& 1000 : administrateur\tabularnewline
	\hline
	Nom & Varchar(100) & Nom et prenom (vrypté avec mycrypt)\tabularnewline
	\hline
	Checksum & Varchar(32) & Somme de contrôle pour vérifier l'intégrité de l'enregistrement\tabularnewline
	\hline
\end{tabular}
\begin{flushleft}
Nous avons ici toute les informations concernant un utilisateur que l'on peut recuperer dans la base de donnée.
\end{flushleft}

\subsubsection{exercice}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid & Unsigned Int & Autoincrement - identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
 	\hline
 	Résumé & Varchar(100) & résumé de l'exercice\tabularnewline
 	\hline
 	Motsclés & Varchar(255) & Liste en texte plein des mots clés associés à l'exercice.\tabularnewline
 	\hline
 	Data & Text & Commentaire libre, par défaut le nom du créateur et la date de création.\tabularnewline
 	\hline
 	Difficulté & Int(2) & Codification du niveau de difficulté.\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
Le contenu des exercices (sources TEX) et leur visualisation graphique serotn stockés sur le serveur sous la forme de fichiers. En effet, même si techniquement il est possible de tout intégrer dans la base, cela s'avère beaucoup plus délicat (il faudrait échapper correctement les caractères spéciaux, mais sans pour autant endommager le contenu).\\

Nous utiliserons l'uid de l'exercice pour nommer les fichiers .tex (sources TEX) et .pdf (visualisation graphique) associés à l'exercice sur le serveur. 
\end{flushleft}

\subsubsection{etiquette}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid & Unsigned Int & Autoincrement - identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
 	\hline
 	Groupe & Unsigned Int(10) & Groupe auquel appartient l'etiquette\tabularnewline
 	\hline
 	Nom & Varchar(100) & nom de l'étiquette\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
Une etiquette est composée de son Uid et on indique a quel groupe elle appartient.
\end{flushleft}

\subsubsection{en-têtes}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid & Unsigned Int & Autoincrement - identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
 	\hline
 	Nom & Varchar(100) & Nom de l'en-tête.\tabularnewline
 	\hline
 	Description & Varchar(255) & Description de l'en-tête.\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
On ne demande que le nom et la description de l'en-tête.
\end{flushleft}

\subsubsection{fiches d'exercices}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid & Unsigned Int & Autoincrement-identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
 	\hline
 	Titre & Varchar(255) & composé automatiquement(ex : 1e année-MAT4-...)\\
	& 	& suivant les informations fournies lors de la création de la fiche.\tabularnewline
 	\hline
 	Date création & Unsigned Int & Timestamp UNIX représentant la date\\
		&	&  de création de la fiche (\textbf{index})\tabularnewline
 	\hline
 	Data & Text & Commentaire sur la fiche, comprend le nom du créateur.\tabularnewline
 	\hline
 	En-tête & Unsigned Int(10) & En-tête de la fiche.\tabularnewline
 	\hline
 	Catégorie & Varchar(100) & Catégorie de la fiche.\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
La fiche d'exercice a comme information un titre qui est automatiquement généré en fonction des informations données lors de sa création.
\end{flushleft}

\subsubsection{Groupe}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid & Unsigned Int & Autoincrement - identifiant numerique unique(\textbf{clefprimaire})\tabularnewline
 	\hline
 	Parent & Int(10) & Groupe parent si c'est un sous-groupe.\tabularnewline
 	\hline
 	Nom & Varchar(100) & Nom du groupe.\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
Un groupe peut avoir un parent si c'est un sous-groupe, on le note vois alors ici.
\end{flushleft}

\subsubsection{catégorie fiche}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Nom & Varchar(100) & Nom de la catégorie.(\textbf{clef primaire})\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
La clef primaire est composée du couple(Uid\_exo,Uid\_fiche).
\end{flushleft}

\subsubsection{exo-etiquette}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid\_exo & Unsigned Int(10) & Uid de l'exercice.\tabularnewline
 	\hline
 	Uid\_etiquette & Unsigned Int(10) & Uid de l'etiquette. (index)\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
La clef primaire est composée du couple(Uid\_exo,Uid\_etiquette).
\end{flushleft}

\subsubsection{Historique}
 \begin{tabular}{|l|c|c|}
 	\hline
 	Uid\_exo & Unsigned Int(10) & Uid de l'exercice.\tabularnewline
 	\hline
 	Uid\_fiche & Unsigned Int(10) & Uid de la fiche\tabularnewline
	\hline
 \end{tabular}
\begin{flushleft}
La clef primaire est composée du couple(Uid\_exo,Uid\_fiche).
\end{flushleft}